Размеры шкафа a
× b × c. Возможно ли его пронести через
дверной проём размерами x × y? Считается, что шкаф проходит в
проем, если размеры, которыми его будут вносить сквозь дверь, не больше
соответствующих размеров двери.
Вход. Целые числа a, b,
c, x, y (1 ≤ a, b,
c, x, y ≤ 100).
Выход. Выведите строку
“YES”, если шкаф
пронести возможно, и “NO” если нельзя.
Пример
входа |
Пример
выхода |
4 5 6 10 20 |
YES |
элементарная
задача – условный оператор
Анализ алгоритма
Пусть a – длина, b – ширина, c – высота
шкафа. Шкаф можно пронести в проем двери одной из трех сторон: передом
(прямоугольник a × c должен входить в x × y), боком
(прямоугольник b × c должен входить в x × y) или верхом
(прямоугольник a × b должен входить в x × y).
Прямоугольник a × b входит в x × y, если выполняется одно из условий:
·
a ≤ x и b
≤ y
·
b ≤ x и a
≤ y
Реализация алгоритма
Читаем входные
данные. Установим переменной flag
значение 0. Перебираем все
три возможных расположения шкафа в проеме двери. Если хотя бы при одном из них
шкаф пройдет в дверь, установим flag
= 1.
scanf("%d %d %d %d %d",&a,&b,&c,&x,&y);
flag = 0;
if (((a <= x) && (b <=
y)) || ((b <= x) && (a <= y))) flag = 1;
if (((b <= x) && (c <=
y)) || ((c <= x) && (b <= y))) flag = 1;
if (((a <= x) && (c <=
y)) || ((c <= x) && (a <= y))) flag = 1;
В зависимости от
значения flag выводим ответ.
if (flag == 1)
printf("YES\n");
else
printf("NO\n");
Второе решение. Задачу можно решить при помощи одного составного
условия.
scanf("%d %d %d %d %d",&a,&b,&c,&x,&y);
if (((a <= x) && (b <=
y)) || ((b <= x) && (a <= y)) ||
((b <= x) && (c <= y)) || ((c
<= x) && (b <= y)) ||
((a <= x) && (c <= y)) || ((c
<= x) && (a <= y)))
printf("YES\n");
else
printf("NO\n");
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int a = con.nextInt();
int b = con.nextInt();
int c = con.nextInt();
int x = con.nextInt();
int y = con.nextInt();
int flag = 0;
if (((a <= x)
&& (b <= y)) || ((b <= x)
&& (a <= y))) flag = 1;
if (((b <= x)
&& (c <= y)) || ((c <= x)
&& (b <= y))) flag = 1;
if (((a <= x)
&& (c <= y)) || ((c <= x)
&& (a <= y))) flag = 1;
if (flag == 1)
System.out.println("YES");
else
System.out.println("NO");
con.close();
}
}
Python реализация
a, b, c, x, y = map(int,input().split())
if (a <= x and b <= y) or (b <= x and a <= y) or (b <= x and c <= y)
or (c <= x and b <= y) or (a <= x and c <= y)
or (c <= x and a <= y):
print("YES")
else:
print("NO")